#pragma once

#include <SDL.h>
#include <SDL_ttf.h>
#include <map>
#include <string>

#include "Screen.h"

/* Klasa ekranu ekwipunku. */
class InventoryScreen : CentreScreen {
	public:
		enum Button {
			b_none, b_weaponUp, b_weaponDown, b_armorUp, b_armorDown, b_useSmallPotion, b_useBigPotion
		};
	
	protected:
		std::map<std::string, SDL_Rect>& blits;
		SDL_Surface* inventorySurface;
		SDL_Surface* interfaceSurface;
		SDL_Surface* smallPotionSurface;
		SDL_Surface* bigPotionSurface;
		SDL_Surface* weaponText;
		SDL_Surface* armorText;
		SDL_Surface* smallPotionText;
		SDL_Surface* bigPotionText;
		TTF_Font* font;
		Button downButton;
	
	public:
		InventoryScreen(SDL_Surface* screen, TTF_Font* font, std::map<std::string, SDL_Rect>& blits);
		
		~InventoryScreen();
		
		Button isInsideButton(int x, int y);

		/* Obsługa kliknięcia, podsyła je klasa Interface, x i y są relatywne do screen */
		void OnMouseButtonDown(int x, int y, int button);
	
		/* Obsługa puszczenia klawisza myszki, podsyła je klasa Interface, x i y są relatywne do screenBlock
		   W sumie nie wiem czy to na pewno będzie void, na razie tak, zobaczy się… */
		void OnMouseButtonUp(int x, int y, int button);

		/* To klasa nadrzędna zdecyduje kiedy rysować, bo ona zarządza tym, które okno jest na wierzchu */
		bool Draw();
};